#ifndef DBOPERATION_H
#define DBOPERATION_H

#include <QObject>
#include <QSqlDatabase>
#include "seckeyinfo.h"

class DBOperation : public QObject
{
    Q_OBJECT
public:
    explicit DBOperation(QObject *parent = nullptr);

    // 连接数据库 -> 连接oracle
    bool connectDB(QString user, QString pwd, QString host,
                   unsigned short port=1521, QString dbName="orcl");
    // 和数据库断开连接
    void disConnectDB();

    // 验证登录数据 --> 网点ID + 密码 (select)
    bool userAuthentication(QString id, QString pwd);

    // 验证客户端节点的信息和状态 --> 网点ID + 网点状态 (select)
    bool isValideClient(QString id);

    // 新的秘钥添加的数库中 -> insert
    bool insertSeckeyInfo(SeckeyInfo& info);

    // 修改秘钥的状态 -> update, 需要知道是哪个秘钥, 将状态更新为什么
    bool modifyKeyStatus(int keyID, bool status);

    // 得到一个可用的秘钥ID
    int getKeyID();


private:
    QSqlDatabase m_db;  // 数据库实例对象
};

#endif // DBOPERATION_H
